﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Yahtzee.Game
{
    public class DobbelsteenCollectie
    {
        private Dobbelsteen[] dobbelstenen;
        
        public DobbelsteenCollectie()
        {
            dobbelstenen = new Dobbelsteen[5];
            for (int i = 0; i < dobbelstenen.Length; i++)
            {
                dobbelstenen[i] = new Dobbelsteen();
            }
        }


        public void gooi()
        {
            for (int i = 0; i < dobbelstenen.Length; i++)
            {
                dobbelstenen[i].gooi();
            }
        }

        public int[] geefOgen()
        {
            var ogen = from i in dobbelstenen
                       select i.geefWaarde();
            return ogen.ToArray();
        }

        public void zetVast(bool[] zetvast)
        {
            for (int i = 0; i < zetvast.Length; i++)
            {
                dobbelstenen[i].zetVast(zetvast[i]);
            }
        }

        internal void print(System.IO.TextWriter output)
        {
            foreach (Dobbelsteen steen in dobbelstenen)
            {
                output.Write(steen.geefWaarde() + " ");
            }
        }

        public int[] telAantalGelijken()
        {
            int[] aantallen = new int[6];
            foreach(var steen in dobbelstenen)
            {
                aantallen[steen.geefWaarde() - 1]++;
            }
            return aantallen;
        }

        public int somVanDeOgen()
        {
            var totaal = from steen in dobbelstenen
                         select steen.geefWaarde();
            return totaal.Sum();
        }

        public bool[] geefVast()
        {
            var vastgezet = from vast in dobbelstenen
                            select vast.geefVast();
            return vastgezet.ToArray();
        }
    }
}
